package kgame5.k3d.util3d.intersection {
import kgame5.k3d.core.math.Vector3D;

/**
 * @author kk
 * 射线与平面相交
 */
public class RayTest {
	//测试平面是否和光线相交
	/*
	 * lineP0 p(t)=p0+t*d.  p0是直线的起点，d是直线的方向
	 * lineD
	 * 
	 * planeN是 pxn=d 是平面的法线
	 * planeD是一个数值型常量
	 * 
	 * 返回的就是相交的那个店
	 */
	public static function test(lineP0:Vector3D,lineD:Vector3D,planeN:Vector3D,planeD:Number):Vector3D{
		
		var t:Number=(planeD-Vector3D.SInnerProduct(lineP0, planeN))/Vector3D.SInnerProduct(lineD, planeN);
		
		var result:Vector3D=lineD.clone();
		result.mul(t);
		result.add(lineP0);
		return result;
	}
}
}
